home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / other / flexcat / lib / modula2mod.sd < prev    next >
Text File  |  1999-06-14  |  2KB  |  117 lines

  1. ##shortstrings
  2. ##stringtype Oberon
  3. IMPLEMENTATION MODULE %bLocale ;
  4.  
  5. (****************************************************
  6.  
  7. This file was created automatically by '%fv'
  8. from "%f0".
  9.  
  10.         Do NOT edit by hand!
  11.  
  12. ****************************************************)
  13.  
  14. FROM SYSTEM   IMPORT  ADR, ADDRESS, TAG ;
  15. FROM UtilityD IMPORT  tagDone ;
  16.  
  17. IMPORT    ll  : OptLocaleL,
  18.     ld  : LocaleD ;
  19.  
  20. CONST
  21.   builtinlanguage = %l ;
  22.   version = %v ;
  23.  
  24. VAR
  25.   catalog    : ld.CatalogPtr ;
  26.  
  27. TYPE
  28.   AppString = RECORD
  29.      id  : LONGINT ;
  30.      str : ld.StrPtr ;
  31.   END ;
  32.  
  33.   AppStringArray = ARRAY [0..%n-1] OF AppString ;
  34.  
  35. CONST
  36.   AppStrings = AppStringArray  {
  37.     AppString{id : %i, str : ADR(%iStr)}%(,)
  38.   } ;
  39.  
  40. (*/// "CloseCatalog()" *)
  41.  
  42. PROCEDURE CloseCatalog() ;
  43.  
  44. BEGIN
  45.   IF catalog # NIL THEN
  46.     ll.CloseCatalog(catalog) ;
  47.     catalog := NIL
  48.   END;
  49. END CloseCatalog ;
  50.  
  51. (*\\\*)
  52.  
  53. (*/// "OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;" *)
  54.  
  55. PROCEDURE OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;
  56.  
  57. VAR
  58.    tagPtr : ADDRESS ;
  59.    tags   : ARRAY [0..7] OF LONGINT ;
  60.  
  61. BEGIN
  62.   CloseCatalog() ;
  63.   IF (catalog = NIL) & (ll.localeBase # NIL) THEN
  64.     IF language[0] # "\o" THEN
  65.       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
  66.               ld.ocLanguage,    ADR(language),
  67.               ld.ocVersion,     version,
  68.               tagDone) ;
  69.      ELSE
  70.       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
  71.               ld.ocVersion,     version,
  72.               tagDone) ;
  73.     END (* IF *) ;
  74.     catalog := ll.OpenCatalogA(loc, ADR("%b.catalog"), tagPtr) ;
  75.   END (* IF *) ;
  76. END OpenCatalog ;
  77.  
  78. (*\\\*)
  79.  
  80. (*/// "GetString(num : LONGINT) : ld.StrPtr" *)
  81.  
  82. PROCEDURE GetString(num : LONGINT) : ld.StrPtr ;
  83.  
  84. VAR
  85.   i      : LONGINT ;
  86.   default : ld.StrPtr ;
  87.  
  88. BEGIN
  89.   i := 0 ;
  90.  
  91.   WHILE (i < %n) AND (AppStrings[i].id # num) DO
  92.     INC(i)
  93.   END (* WHILE *) ;
  94.  
  95.   IF i # %n THEN
  96.     default := AppStrings[i].str ;
  97.    ELSE
  98.     default := NIL ;
  99.   END (* IF *) ;
  100.  
  101.   IF catalog # NIL THEN
  102.     RETURN ll.GetCatalogStr(catalog, num, default) ;
  103.    ELSE
  104.     RETURN default ;
  105.   END (* IF *) ;
  106. END GetString ;
  107.  
  108. (*\\\*)
  109.  
  110. BEGIN
  111.  
  112. CLOSE
  113.  
  114.   CloseCatalog() ;
  115.  
  116. END %bLocale .
  117.